{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a00a09c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load required libraries\n",
    "import torch\n",
    "from torch import optim\n",
    "import copy\n",
    "import numpy as np\n",
    "# -custom-written libraries\n",
    "import utils\n",
    "from data.load import get_context_set\n",
    "from models.classifier import Classifier\n",
    "from train.train_task_based import train_cl\n",
    "from eval import evaluate, callbacks as cb\n",
    "from visual import visual_plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "cb0539a1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Enable plotting in the notebook\n",
    "%matplotlib inline  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "57e3b84a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CUDA is used\n"
     ]
    }
   ],
   "source": [
    "# Is cuda available?\n",
    "cuda = torch.cuda.is_available()\n",
    "device = torch.device(\"cuda\" if cuda else \"cpu\")\n",
    "print(\"CUDA is {}used\".format(\"\" if cuda else \"not \"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "320f9e43",
   "metadata": {},
   "source": [
    "## DATA: Prepare the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c6ead555",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Specify what kind of continual learning experiment we should run\n",
    "experiment = \"splitMNIST\"  #--> create context set by splitting up the MNIST dataset\n",
    "contexts = 5               #--> split the dataset up into how many contexts?\n",
    "iters = 500                #--> number of iterations per context\n",
    "batch = 128                #--> number of samples per iteration (i.e., the mini-batch size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ee01ec88",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Specify according to which scenario the continual learning experiment should be performed?\n",
    "scenario = \"class\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "2746c66a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Where is, or should, the data be stored?\n",
    "d_dir = './store/datasets'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "d9b6f329",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " --> MNIST: 'train'-dataset consisting of 60000 samples\n",
      " --> MNIST: 'test'-dataset consisting of 10000 samples\n"
     ]
    }
   ],
   "source": [
    "# Load the context set (both train- and test-data) for the specified continual learning experiment\n",
    "(train_datasets, test_datasets), config = get_context_set(\n",
    "    name=experiment, scenario=scenario, contexts=contexts, data_dir=d_dir, verbose=True, exception=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "51fc95ea",
   "metadata": {},
   "source": [
    "## CLASSIFIER: Specify the classifier network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "06a212fa",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Specify the architectural layout of the network to use\n",
    "fc_lay = 3        #--> number of fully-connected layers\n",
    "fc_units = 400    #--> number of units in each hidden layer\n",
    "fc_bn = False     #--> use batch-norm\n",
    "fc_nl = \"relu\"    #--> what non-linearity to use?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a9749091",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the model\n",
    "model = Classifier(\n",
    "    image_size=config['size'], image_channels=config['channels'], classes=config['output_units'],\n",
    "    # -conv-layers are not used\n",
    "    depth=0,\n",
    "    # -fc-layers\n",
    "    fc_layers=fc_lay, fc_units=fc_units, fc_bn=fc_bn, fc_nl=fc_nl, excit_buffer=True,\n",
    ").to(device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d6b15c63",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Indicate to model what scenario it will be trained on and how many classes there are in each context\n",
    "model.scenario = scenario\n",
    "model.classes_per_context = config['classes_per_context']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "749dc0cd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-------------------------------------------------------\n",
      "Classifier(\n",
      "  (convE): ConvLayers(\n",
      "    (pooling): Identity()\n",
      "  )\n",
      "  (flatten): Flatten()\n",
      "  (fcE): MLP(\n",
      "    (fcLayer1): fc_layer(\n",
      "      (linear): LinearExcitability(in_features=784, out_features=400)\n",
      "      (nl): ReLU()\n",
      "    )\n",
      "    (fcLayer2): fc_layer(\n",
      "      (linear): LinearExcitability(in_features=400, out_features=400)\n",
      "      (nl): ReLU()\n",
      "    )\n",
      "  )\n",
      "  (classifier): fc_layer(\n",
      "    (linear): LinearExcitability(in_features=400, out_features=10)\n",
      "  )\n",
      ")\n",
      "-------------------------------------------------------\n",
      "--> this network has 478410 parameters (~0.5 million)\n",
      "       of which: - learnable: 478410 (~0.5 million)\n",
      "                 - fixed: 0 (~0.0 million)\n"
     ]
    }
   ],
   "source": [
    "# Print layout of the model to the screen\n",
    "utils.print_model_info(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91b36dc3",
   "metadata": {},
   "source": [
    "#### Create several copies of the network, which each will be trained with a different continual learning method "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "6b421901",
   "metadata": {},
   "outputs": [],
   "source": [
    "# -baseline\n",
    "model_naive = copy.deepcopy(model)\n",
    "# -different continual learning methods (each method illustrates a different strategy)\n",
    "model_si = copy.deepcopy(model)\n",
    "model_lwf = copy.deepcopy(model)\n",
    "model_er = copy.deepcopy(model)\n",
    "if scenario==\"task\":\n",
    "    model_xdg = copy.deepcopy(model)\n",
    "if scenario==\"class\":\n",
    "    model_icarl = copy.deepcopy(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "10f44613",
   "metadata": {},
   "source": [
    "## CL-STRATEGY: Specify the continual learning strategy to use"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "50eb0638",
   "metadata": {},
   "source": [
    "### Parameter Regularization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "456d55be",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Synaptic Intelligence (SI)\n",
    "model_si.weight_penalty = True\n",
    "model_si.importance_weighting = 'si'\n",
    "model_si.reg_strength = 100."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a1b72b02",
   "metadata": {},
   "source": [
    "### Functional Regularization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "c59bc386",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Learning without Forgetting (LwF)\n",
    "model_lwf.replay_mode = 'current'\n",
    "model_lwf.replay_targets = 'soft'\n",
    "model_lwf.KD_temp = 2.\n",
    "model_lwf.lwf_weighting = True"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02317fbe",
   "metadata": {},
   "source": [
    "### Replay"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "82668e74",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Experience Replay (ER)\n",
    "model_er.replay_mode = 'buffer'\n",
    "model_er.use_memory_buffer = True\n",
    "model_er.budget_per_class = 100\n",
    "model_er.sample_selection = 'random'"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "975a3268",
   "metadata": {},
   "source": [
    "### Context-specific components"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "5a8ce734",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Context-specific Gating (XdG)\n",
    "gating_prop = 0.9\n",
    "if scenario==\"task\":\n",
    "    model_xdg.mask_dict = {}\n",
    "    model_xdg.excit_buffer_list = []\n",
    "    for context_id in range(contexts):\n",
    "        model_xdg.mask_dict[context_id + 1] = {}\n",
    "        for i in range(model_xdg.fcE.layers):\n",
    "            # For each fully-connected hidden layer, define for every context a random mask of units to set to zero\n",
    "            layer = getattr(model_xdg.fcE, \"fcLayer{}\".format(i + 1)).linear\n",
    "            if context_id == 0:\n",
    "                model_xdg.excit_buffer_list.append(layer.excit_buffer)\n",
    "            n_units = len(layer.excit_buffer)\n",
    "            gated_units = np.random.choice(n_units, size=int(gating_prop * n_units), replace=False)\n",
    "            model_xdg.mask_dict[context_id + 1][i] = gated_units"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04975f9b",
   "metadata": {},
   "source": [
    "### Template-based Classification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "d9e0a292",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Incremental Classification and Represenation Learning (iCaRL)\n",
    "if scenario==\"class\":\n",
    "    model_icarl.use_memory_buffer = True\n",
    "    model_icarl.budget_per_class = 100\n",
    "    model_icarl.sample_selection = 'herding'\n",
    "    model_icarl.norm_exemplars = True\n",
    "    model_icarl.add_buffer = True\n",
    "    model_icarl.prototypes = True\n",
    "    model_icarl.binaryCE = True\n",
    "    model_icarl.binaryCE_distill = True"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6448262e",
   "metadata": {},
   "source": [
    "## CALLBACKS: Specify callback-functions to get insight into training progress"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "198c0fbf",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Callback-function that provides a tqdm progress bar for during training, reporting training loss and accuracy\n",
    "loss_cbs = [cb._classifier_loss_cb(contexts=contexts, iters_per_context=iters)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "7e7cdc33",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Prepare for keeping track of performance (on test set) during training, for later plotting\n",
    "plotting_dict_naive = evaluate.initiate_plotting_dict(contexts)\n",
    "plotting_dict_si = evaluate.initiate_plotting_dict(contexts)\n",
    "plotting_dict_lwf = evaluate.initiate_plotting_dict(contexts)\n",
    "plotting_dict_er = evaluate.initiate_plotting_dict(contexts)\n",
    "if scenario==\"task\":\n",
    "    plotting_dict_xdg = evaluate.initiate_plotting_dict(contexts)\n",
    "if scenario==\"class\":\n",
    "    plotting_dict_icarl = evaluate.initiate_plotting_dict(contexts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "6b7b35c6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Callback-function to track test accuracy during training, for later plotting\n",
    "context_cbs_naive = [\n",
    "    cb._eval_cb(log=iters, test_datasets=test_datasets, plotting_dict=plotting_dict_naive, iters_per_context=iters)\n",
    "]\n",
    "context_cbs_si = [\n",
    "    cb._eval_cb(log=iters, test_datasets=test_datasets, plotting_dict=plotting_dict_si, iters_per_context=iters)\n",
    "]\n",
    "context_cbs_lwf = [\n",
    "    cb._eval_cb(log=iters, test_datasets=test_datasets, plotting_dict=plotting_dict_lwf, iters_per_context=iters)\n",
    "]\n",
    "context_cbs_er = [\n",
    "    cb._eval_cb(log=iters, test_datasets=test_datasets, plotting_dict=plotting_dict_er, iters_per_context=iters)\n",
    "]\n",
    "if scenario==\"task\":\n",
    "    context_cbs_xdg = [\n",
    "        cb._eval_cb(log=iters, test_datasets=test_datasets, plotting_dict=plotting_dict_xdg, iters_per_context=iters)\n",
    "    ]\n",
    "if scenario==\"class\":\n",
    "    context_cbs_icarl = [\n",
    "        cb._eval_cb(log=iters, test_datasets=test_datasets, plotting_dict=plotting_dict_icarl, iters_per_context=iters)\n",
    "    ]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1c1c8ab1",
   "metadata": {},
   "source": [
    "## TRAIN: Train the model on the continual learning experiment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "680da4f9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Settings for the optimizer to use\n",
    "lr = 0.001           #--> learning rate to use"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "8e3602ca",
   "metadata": {},
   "outputs": [],
   "source": [
    "# For each model, set up the optimizer to use\n",
    "model_list = [model_naive, model_si, model_lwf, model_er]\n",
    "if scenario==\"task\":\n",
    "    model_list.append(model_xdg)\n",
    "if scenario==\"class\":\n",
    "    model_list.append(model_icarl)\n",
    "for model in model_list:\n",
    "    model.optim_list = [{'params': filter(lambda p: p.requires_grad, model.parameters()), 'lr': lr}]\n",
    "    model.optimizer = optim.Adam(model.optim_list, betas=(0.9, 0.999))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc1dd1bb",
   "metadata": {},
   "source": [
    "#### Train all the models using different continual learning methods"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "609facda",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<CLASSIFIER> | Context: 1/5 | training loss: 1.05e-05 | training accuracy: 1.0 |: 100%|██████████████████████████████| 500/500 [00:10<00:00, 47.20it/s]\n",
      "<CLASSIFIER> | Context: 2/5 | training loss: 0.0128 | training accuracy: 0.992 |: 100%|██████████████████████████████| 500/500 [00:10<00:00, 49.12it/s]\n",
      "<CLASSIFIER> | Context: 3/5 | training loss: 0.000898 | training accuracy: 1.0 |: 100%|██████████████████████████████| 500/500 [00:10<00:00, 48.89it/s]\n",
      "<CLASSIFIER> | Context: 4/5 | training loss: 0.000352 | training accuracy: 1.0 |: 100%|██████████████████████████████| 500/500 [00:10<00:00, 49.36it/s]\n",
      "<CLASSIFIER> | Context: 5/5 | training loss: 0.00319 | training accuracy: 1.0 |: 100%|███████████████████████████████| 500/500 [00:09<00:00, 50.34it/s]\n"
     ]
    }
   ],
   "source": [
    "# Naive baseline\n",
    "train_cl(\n",
    "    model_naive, train_datasets, iters=iters, batch_size=batch, loss_cbs=loss_cbs, context_cbs=context_cbs_naive,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "b585d66d",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<CLASSIFIER> | Context: 1/5 | training loss: 6.23e-05 | training accuracy: 1.0 |: 100%|██████████████████████████████| 500/500 [00:10<00:00, 47.72it/s]\n",
      "<CLASSIFIER> | Context: 2/5 | training loss: 0.0373 | training accuracy: 1.0 |: 100%|████████████████████████████████| 500/500 [00:11<00:00, 43.94it/s]\n",
      "<CLASSIFIER> | Context: 3/5 | training loss: 0.0161 | training accuracy: 1.0 |: 100%|████████████████████████████████| 500/500 [00:11<00:00, 44.69it/s]\n",
      "<CLASSIFIER> | Context: 4/5 | training loss: 0.00592 | training accuracy: 1.0 |: 100%|███████████████████████████████| 500/500 [00:11<00:00, 44.42it/s]\n",
      "<CLASSIFIER> | Context: 5/5 | training loss: 0.0707 | training accuracy: 0.984 |: 100%|██████████████████████████████| 500/500 [00:10<00:00, 47.00it/s]\n"
     ]
    }
   ],
   "source": [
    "# Synaptic Intelligence\n",
    "train_cl(\n",
    "    model_si, train_datasets, iters=iters, batch_size=batch, loss_cbs=loss_cbs, context_cbs=context_cbs_si,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "fc974df9",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<CLASSIFIER> | Context: 1/5 | training loss: 3.24e-06 | training accuracy: 1.0 |: 100%|██████████████████████████████| 500/500 [00:08<00:00, 56.95it/s]\n",
      "<CLASSIFIER> | Context: 2/5 | training loss: 1.46 | training accuracy: 0.992 |: 100%|████████████████████████████████| 500/500 [00:09<00:00, 50.88it/s]\n",
      "<CLASSIFIER> | Context: 3/5 | training loss: 1.97 | training accuracy: 1.0 |: 100%|██████████████████████████████████| 500/500 [00:09<00:00, 52.16it/s]\n",
      "<CLASSIFIER> | Context: 4/5 | training loss: 2.3 | training accuracy: 1.0 |: 100%|███████████████████████████████████| 500/500 [00:09<00:00, 52.21it/s]\n",
      "<CLASSIFIER> | Context: 5/5 | training loss: 2.49 | training accuracy: 1.0 |: 100%|██████████████████████████████████| 500/500 [00:09<00:00, 51.95it/s]\n"
     ]
    }
   ],
   "source": [
    "# Learning without Forgetting\n",
    "train_cl(\n",
    "    model_lwf, train_datasets, iters=iters, batch_size=batch, loss_cbs=loss_cbs, context_cbs=context_cbs_lwf,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "f7824f59",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<CLASSIFIER> | Context: 1/5 | training loss: 9.88e-06 | training accuracy: 1.0 |: 100%|██████████████████████████████| 500/500 [00:09<00:00, 50.40it/s]\n",
      "<CLASSIFIER> | Context: 2/5 | training loss: 0.00253 | training accuracy: 1.0 |: 100%|███████████████████████████████| 500/500 [00:11<00:00, 44.84it/s]\n",
      "<CLASSIFIER> | Context: 3/5 | training loss: 0.00109 | training accuracy: 1.0 |: 100%|███████████████████████████████| 500/500 [00:10<00:00, 47.07it/s]\n",
      "<CLASSIFIER> | Context: 4/5 | training loss: 0.000389 | training accuracy: 1.0 |: 100%|██████████████████████████████| 500/500 [00:09<00:00, 50.39it/s]\n",
      "<CLASSIFIER> | Context: 5/5 | training loss: 0.00527 | training accuracy: 0.984 |: 100%|█████████████████████████████| 500/500 [00:09<00:00, 50.81it/s]\n"
     ]
    }
   ],
   "source": [
    "# Experience Replay\n",
    "train_cl(\n",
    "    model_er, train_datasets, iters=iters, batch_size=batch, loss_cbs=loss_cbs, context_cbs=context_cbs_er,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "76f05e7a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# XdG\n",
    "if scenario==\"task\":\n",
    "    train_cl(\n",
    "        model_xdg, train_datasets, iters=iters, batch_size=batch, loss_cbs=loss_cbs, context_cbs=context_cbs_xdg,\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "54e9c8de",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<CLASSIFIER> | Context: 1/5 | training loss: 0.000369 | training accuracy: 1.0 |: 100%|██████████████████████████████| 500/500 [00:08<00:00, 55.57it/s]\n",
      "<CLASSIFIER> | Context: 2/5 | training loss: 0.397 | training accuracy: 0.859 |: 100%|███████████████████████████████| 500/500 [00:09<00:00, 50.54it/s]\n",
      "<CLASSIFIER> | Context: 3/5 | training loss: 1.37 | training accuracy: 0.977 |: 100%|████████████████████████████████| 500/500 [00:09<00:00, 51.36it/s]\n",
      "<CLASSIFIER> | Context: 4/5 | training loss: 2.95 | training accuracy: 0.953 |: 100%|████████████████████████████████| 500/500 [00:08<00:00, 55.88it/s]\n",
      "<CLASSIFIER> | Context: 5/5 | training loss: 4.05 | training accuracy: 0.945 |: 100%|████████████████████████████████| 500/500 [00:10<00:00, 49.02it/s]\n"
     ]
    }
   ],
   "source": [
    "# iCaRL\n",
    "if scenario==\"class\":\n",
    "    train_cl(\n",
    "        model_icarl, train_datasets, iters=iters, batch_size=batch, loss_cbs=loss_cbs, context_cbs=context_cbs_icarl,\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41bcf17f",
   "metadata": {},
   "source": [
    "## EVALUATION: Plot average accuracy curves throughout training for compared methods"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "5b128331",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Collect data for the lines to plot\n",
    "lines_to_plot = [\n",
    "    plotting_dict_naive[\"average\"],\n",
    "    plotting_dict_si[\"average\"],\n",
    "    plotting_dict_lwf[\"average\"],\n",
    "    plotting_dict_er[\"average\"]\n",
    "]\n",
    "if scenario==\"task\":\n",
    "    lines_to_plot.append(plotting_dict_xdg[\"average\"])\n",
    "if scenario==\"class\":\n",
    "    lines_to_plot.append(plotting_dict_icarl[\"average\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "ae1533dc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Specify labels and layout for the plot\n",
    "line_names = ['Naive', 'SI', 'LwF', 'ER']\n",
    "line_colors = ['grey', 'yellowgreen', 'gold', 'red']\n",
    "if scenario==\"task\":\n",
    "    line_names.append('XdG')\n",
    "    line_colors.append('deepskyblue')\n",
    "if scenario==\"class\":\n",
    "    line_names.append('iCaRL')\n",
    "    line_colors.append('purple')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "9e5b4617",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+kAAAJwCAYAAAD1IyBAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAADWJklEQVR4nOzdd3hUVf7H8fedSTLpBRJCSSA0EURpAgKiCCiiIthAsCBYsAGCrmXX7ior/lRUVCy7igUbuuouithQmqD03nuHlEkvM/f3xyyRkJswE2ZSP6/nmcfknnvOfCdNPnPPPccwTdNERERERERERKqcraoLEBEREREREREPhXQRERERERGRakIhXURERERERKSaUEgXERERERERqSYU0kVERERERESqCYV0ERERERERkWpCIV1ERERERESkmlBIFxEREREREakmFNJFREREREREqgmFdBGRWmrHjh0YhsG7775bfOzxxx/HMIyqK0q8YhgGjz/+eFWXUUpKSgo33XRTVZdR58ydOxfDMJg7d26557377rsYhsGOHTsqpa6K8vb1iIjUVQrpIiJ13DPPPMOXX35Z6vixf/AbhsH8+fNLtZumSXJyMoZhcNlll5VoO9bv+eefL3PcP/74o/jYsTcPjhw5UuLc//znP5x//vk0aNCA8PBwWrRowdChQ5k9ezYAffr0KX6u8h7VMfBK3VHW75iIiIiVoKouQEREKs/DDz/Mgw8+WOLYM888w9VXX82QIUMs+4SGhjJjxgzOPffcEsd/+eUX9uzZg8PhKPP5nnvuOe644w7Cw8N9rvX//u//+Mtf/sL555/PQw89RHh4OFu2bOGHH37g448/5uKLL+Zvf/sbt9xyS3Gf33//nZdffpm//vWvtG3btvj4WWed5fPzS2kbN27EZtP7+7462e9YXXPeeeeRm5tLSEhIVZciIlItKaSLiNQhQUFBBAX59qf/kksu4bPPPuPll18u0XfGjBl06dKl1NXvYzp27MiKFSuYNm0aEydO9Ok5i4qKeOqpp7jwwguZM2dOqfZDhw4BcOGFF5Y4Hhoayssvv8yFF15Inz59fHpOObny3pAJlJycnAq9ySOVJzs7m4iICK/Pt9lshIaGBrAiEZGaTW+Hi4hUI5mZmdxzzz2kpKTgcDho0KABF154IcuWLSs+p0+fPrRv356lS5fSs2dPwsLCaN68OdOmTTvp+Cfek24YBtnZ2UyfPr14aviJ9xwPHz6co0eP8v333xcfKygoYObMmYwYMaLM5+rVqxd9+/Zl8uTJ5Obm+vBVgCNHjuB0OunVq5dle4MGDXwarzrJy8vj8ccf57TTTiM0NJRGjRpx5ZVXsnXr1jL77Ny5kzvvvJM2bdoQFhZG/fr1ueaaa0rde1xYWMgTTzxB69atCQ0NpX79+px77rklvncHDhxg1KhRJCUl4XA4aNSoEYMHD/bqPuYT70k/duvCggULmDhxIgkJCURERHDFFVdw+PDhUv2//fZbzj//fKKiooiOjqZr167MmDGjuP34n+3zzjuP8PBw/vrXvwKQn5/PY489RqtWrXA4HCQnJ3P//feTn59f4jkMw+Duu+/ms88+o127doSFhdGjRw9Wr14NwBtvvEGrVq0IDQ2lT58+lq978eLFXHzxxcTExBAeHs7555/PggULSpxz7Hdpy5Yt3HTTTcTGxhITE8OoUaPIyckpUU9Zv2Pefl9P1bfffkvv3r2JiIggKiqKSy+9lLVr15Y4Z9WqVdx00020aNGC0NBQGjZsyOjRozl69Kjl6163bh0jRowgLi6ueJZNSkoKl112GfPnz6dbt26EhobSokUL3nvvvRJjWN2Tfux7v27dOi644ALCw8Np0qQJkydPLvV6du7cyeWXX05ERAQNGjRgwoQJfPfdd7rPXURqDV1JFxGpRm6//XZmzpzJ3XffTbt27Th69Cjz589n/fr1dO7cufi8tLQ0LrnkEoYOHcrw4cP59NNPueOOOwgJCWH06NFeP9/777/PLbfcQrdu3bjtttsAaNmyZYlzUlJS6NGjBx999BEDBw4EPP/oz8jI4Nprr+Xll18uc/zHH3+c8847j9dff92nq+kNGjQgLCyM//znP4wdO5Z69ep53bc6c7lcXHbZZfz4449ce+21jB8/nszMTL7//nvWrFlT6mt/zO+//87ChQu59tprSUpKYseOHbz++uv06dOHdevWFV9pfvzxx5k0aVLx99TpdPLHH3+wbNmy4lkHV111FWvXrmXs2LGkpKRw6NAhvv/+e3bt2kVKSkqFXtfYsWOJi4vjscceY8eOHUyZMoW7776bTz75pPicd999l9GjR3PGGWfw0EMPERsby/Lly5k9e3aJN3uOHj3KwIEDufbaa7n++utJTEzE7XZz+eWXM3/+fG677Tbatm3L6tWrefHFF9m0aVOp+73nzZvH119/zV133QXApEmTuOyyy7j//vt57bXXuPPOO0lLS2Py5MmMHj2an376qbjvTz/9xMCBA+nSpQuPPfYYNpuNd955h759+zJv3jy6detW4rmGDh1K8+bNmTRpEsuWLePtt9+mQYMGPPvss0D5v2Pefl9Pxfvvv8/IkSMZMGAAzz77LDk5Obz++uuce+65LF++vPh7/v3337Nt2zZGjRpFw4YNWbt2LW+++SZr167lt99+K7Xg5DXXXEPr1q155plnME2z+PiWLVu4+uqrufnmmxk5ciT/+te/uOmmm+jSpQtnnHFGubWmpaVx8cUXc+WVVzJ06FBmzpzJAw88wJlnnln8tyc7O5u+ffuyf/9+xo8fT8OGDZkxYwY///zzKX+tRESqDVNERKqNmJgY86677ir3nPPPP98EzOeff774WH5+vtmxY0ezQYMGZkFBgWmaprl9+3YTMN95553i8x577DHzxD/9ERER5siRI0s9zzvvvGMC5u+//25OnTrVjIqKMnNyckzTNM1rrrnGvOCCC0zTNM1mzZqZl156aYm+QPHruOCCC8yGDRsW9z1+3BPrOnz4cPGxRx991ATMiIgIc+DAgebTTz9tLl26tNyvzWeffWYC5s8//1zueVXlX//6lwmYL7zwQqk2t9td/DFgPvbYY8WfH/vaHW/RokUmYL733nvFxzp06FDqe3G8tLQ0EzCfe+65CtXfrFmzEj8rx76X/fv3L1H/hAkTTLvdbqanp5umaZrp6elmVFSU2b17dzM3N7fEmMf3O/azPW3atBLnvP/++6bNZjPnzZtX4vi0adNMwFywYEHxMcB0OBzm9u3bi4+98cYbJmA2bNjQdDqdxccfeughEyg+1+12m61btzYHDBhQoq6cnByzefPm5oUXXlh87NjP7OjRo0vUdMUVV5j169cvcays3zFvv68///yzVz/Xx74fx15PZmamGRsba956660lzjtw4IAZExNT4rhVLR999JEJmL/++mvxsWOve/jw4aXOb9asWanzDx06ZDocDvPee+8t9/Uc+94f/7rz8/PNhg0bmldddVXxseeff94EzC+//LL4WG5urnn66adX6999ERFfaLq7iEg1Ehsby+LFi9m3b1+55wUFBTFmzJjiz0NCQhgzZgyHDh1i6dKlfq9r6NCh5Obm8t///pfMzEz++9//ljvV/XiPP/44Bw4c8Go6/vGeeOIJZsyYQadOnfjuu+/429/+RpcuXejcuTPr16+vyMuocp9//jnx8fGMHTu2VFt5W+OFhYUVf1xYWMjRo0dp1aoVsbGxJW6FiI2NZe3atWzevLnMcUJCQpg7dy5paWmn8EpKuu2220rU37t3b1wuFzt37gQ8V2kzMzN58MEHS92LfOLrdjgcjBo1qsSxzz77jLZt23L66adz5MiR4kffvn0BSl1F7devX4lZAd27dwc8swiioqJKHd+2bRsAK1asYPPmzYwYMYKjR48WP092djb9+vXj119/xe12l3iu22+/vcTnvXv35ujRozidznK+Yh7efl8r6vvvvyc9PZ3hw4eX+LrZ7Xa6d+9e4ut2fC15eXkcOXKEc845B8CylhNf9zHt2rWjd+/exZ8nJCTQpk2b4q9xeSIjI7n++uuLPw8JCaFbt24l+s6ePZsmTZpw+eWXFx8LDQ3l1ltvPen4IiI1haa7i4hUI5MnT2bkyJEkJyfTpUsXLrnkEm688UZatGhR4rzGjRuXWqjptNNOAzz7ox/7x7W/JCQk0L9/f2bMmEFOTg4ul4urr77aq77nnXceF1xwAZMnTy7zH/ZlGT58OMOHD8fpdLJ48WLeffddZsyYwaBBg1izZk1AFp8qKCggNTW1xLGEhAQKCgrIyMgocbxhw4Y+jb1161batGnj8+J9ubm5TJo0iXfeeYe9e/eWmF58fE1PPvkkgwcP5rTTTqN9+/ZcfPHF3HDDDcWr2zscDp599lnuvfdeEhMTOeecc7jsssu48cYbi19LRkZGiTUEQkJCTnq7QdOmTUt8HhcXB1D8RsCx++3bt29/0tfapEmTUqt+b968mfXr15OQkGDZ59hCgmXVExMTA0BycrLl8WN1HntzY+TIkWXWl5GRUfz6rJ7r+NceHR1d5jjg/fe1oo69nmNvZpzo+PpSU1N54okn+Pjjj0t9Pa1qad68ueWYJ349wPM18eZNoaSkpFJv2sTFxbFq1ariz3fu3EnLli1LndeqVauTji8iUlMopIuIVCNDhw6ld+/e/Pvf/2bOnDk899xzPPvss3zxxRfF92RWlREjRnDrrbdy4MABBg4cSGxsrNd9H3vsMfr06cMbb7zhU79joqOjufDCC7nwwgsJDg5m+vTpLF68mPPPP9/nsU5m4cKFXHDBBSWObd++nblz55a6wnt8qAqksWPH8s4773DPPffQo0cPYmJiMAyDa6+9tsSV3fPOO4+tW7fy1VdfMWfOHN5++21efPFFpk2bVrxV3T333MOgQYP48ssv+e6773jkkUeYNGkSP/30E506dWL8+PFMnz69eMzzzz//pItx2e12y+MV+focf0X3GLfbzZlnnskLL7xg2efE8F1WPSer89jX8rnnnqNjx46W50ZGRvo0Znm8/b5W1LEx3n//fcs3lI5/s2jo0KEsXLiQv/zlL3Ts2JHIyEjcbjcXX3yxZS1W3yc4ta+HP3+ORERqMoV0EZFqplGjRtx5553ceeedHDp0iM6dO/P000+XCOn79u0rte3Rpk2bAHxe/Ku8adbHu+KKKxgzZgy//fZbiQXBvHH++efTp08fnn32WR599FGf+p7o7LPPZvr06ezfv/+UxilLhw4dSqyGDp4r5gMGDCh13FctW7Zk8eLFFBYWEhwc7HW/mTNnMnLkSJ5//vniY3l5eaSnp5c6t169eowaNYpRo0aRlZXFeeedx+OPP15iP/mWLVty7733cu+997J582Y6duzI888/zwcffMD9999fYsrx8VeNK+rYQmlr1qyp0BXPli1bsnLlSvr16+f1z2tFHKszOjqa/v37+23csmr25ftaEcdeT4MGDcp9PWlpafz444888cQTJX4/y7ptoio1a9aMdevWYZpmia/rli1bqrAqERH/0j3pIiLVhMvlKjWttEGDBjRu3LjUNlNFRUW88cYbxZ8XFBTwxhtvkJCQQJcuXXx63oiICK9CQWRkJK+//jqPP/44gwYN8uk54M970998882TnpuTk8OiRYss27799lsA2rRp43MN3oiLi6N///4lHse2SjvxuK+uuuoqjhw5wtSpU0u1lXe10G63l2p/5ZVXcLlcJY6duF1WZGQkrVq1Kv75ycnJIS8vr8Q5LVu2JCoqqvicdu3alXiNvv48WbnooouIiopi0qRJpZ7fm6ukQ4cOZe/evbz11lul2nJzc8nOzj7lGgG6dOlCy5Yt+b//+z+ysrJKtVttK+eNsn7HvP2+VtSAAQOIjo7mmWeeobCwsFT7sddz7Ar2ibVMmTLFL3X404ABA9i7dy9ff/118bG8vDzLnw0RkZpKV9JFRKqJzMxMkpKSuPrqq+nQoQORkZH88MMP/P777yWutIHnnvRnn32WHTt2cNppp/HJJ5+wYsUK3nzzTZ+u0IInmPzwww+88MILNG7cmObNmxcvqHWi8u7VPZnzzz+f888/n19++eWk5+bk5NCzZ0/OOeccLr74YpKTk0lPT+fLL79k3rx5DBkyhE6dOlW4lqpy44038t577zFx4kSWLFlC7969yc7O5ocffuDOO+9k8ODBlv0uu+wy3n//fWJiYmjXrh2LFi3ihx9+oH79+iXOa9euHX369KFLly7Uq1ePP/74o3hLP/DMtujXrx9Dhw6lXbt2BAUF8e9//5uDBw9y7bXXBux1R0dH8+KLL3LLLbfQtWvX4v21V65cSU5OTonp9VZuuOEGPv30U26//XZ+/vlnevXqhcvlYsOGDXz66ad89913nH322adcp81m4+2332bgwIGcccYZjBo1iiZNmrB3715+/vlnoqOj+c9//uPzuGX9jnn7fa2o6OhoXn/9dW644QY6d+7MtddeS0JCArt27WLWrFn06tWLqVOnEh0dzXnnncfkyZMpLCykSZMmzJkzh+3bt/ulDn8aM2YMU6dOZfjw4YwfP55GjRrx4YcfFq9PEciZFiIilUUhXUSkmggPD+fOO+9kzpw5fPHFF7jdblq1asVrr73GHXfcUeLcuLg4pk+fztixY3nrrbdITExk6tSpFVrh+IUXXuC2227j4YcfJjc3l5EjR5YZ0k/V448/Xup+byuxsbG89dZbzJo1i3feeYcDBw5gt9tp06YNzz33HOPGjQtIfYFmt9v55ptvePrpp5kxYwaff/459evX59xzz+XMM88ss99LL72E3W7nww8/JC8vj169evHDDz8wYMCAEueNGzeOr7/+mjlz5pCfn0+zZs34+9//zl/+8hfAc+/28OHD+fHHH3n//fcJCgri9NNP59NPP+Wqq64K6Gu/+eabadCgAf/4xz946qmnCA4O5vTTT2fChAkn7Wuz2fjyyy958cUXee+99/j3v/9NeHg4LVq0YPz48cWLJvpDnz59WLRoEU899RRTp04lKyuLhg0b0r179xI7KviirN8xb7+vp2LEiBE0btyYf/zjHzz33HPk5+fTpEkTevfuXWKNhRkzZjB27FheffVVTNPkoosu4ttvv6Vx48Z+q8UfIiMj+emnnxg7diwvvfQSkZGR3HjjjfTs2ZOr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M6t6oCgpKcGdd96J//mf/8Hw4cMRHByMffv24fnnn8ctt9zi7/KIiIiIiIioHRjSewij0Yjx48dj1apVyMnJgc1mQ0JCAubOnYvHH3/c3+URERERERFROzCk9xBarRYrVqzAihUrWtznp59+8l1BRERERERE5DVOHEdEREREREQUIBjSiYiIiIiIiAIEQzoRERERERFRgGBIJyIiIiIiIgoQDOlEREREREREAYIhnYiIiIiIiChAMKQTERERERERBQiGdCIiIiIiIqIAwZBOREREREREFCAY0omIiIiIiIgCBEN6DzF79mxkZGR0+jxPPfUUJEnyeP3nP//pfJFERERERETUKpW/Cwho+XMBy2H/1qAdCsS+7tNLDhkyxCOUh4eH+7QGIiIiIiKi3oghvTWWw4D5O39X0Sl/+MMfcOzYMWzZsgUAsHr1ajz00EP47LPPcP311wMAUlNTsWTJEtxzzz0AAJVKhZiYGL/VTERERERE1Fuxu3sPN2nSJHz77bew2+0AgJ07dyIyMhI7duwAAJw/fx45OTmYPHmy/4okIiIiIiIiAAzpPd7EiRNRWVmJ/fv3QwiBr7/+GosWLXKF9B07dqBv375ITU11HXPo0CEYjUbXa9y4cX6qnoiIiIiIqHdhd/ceLjQ0FCNGjMCOHTug0Wig0Whw7733YtmyZaiqqsLOnTsxadIkt2PS0tLw0UcfuX7XarW+LpuIiIiIiKhXYkhvjXaovyvokhomT56MHTt2QKvVYtKkSQgPD8egQYPw7bffYufOnVi0aJHb/hqNxq1lnYiIiIiIiHyDIb01Pp5VXS6TJk3CP/7xD6hUKtdkcZMnT8Y777yDEydOcDw6ERERERFRgGBI70HKy8uRnZ3tti0iIgJXX301KisrsWXLFqxcuRKAM6TfcccdiI2NxcCBA/1QLRERERERETXFkN6D7NixA6NGjXLbNmfOHKxduxbDhg1DYWEh0tPTAQBXX301HA6Hx3h0IiIiIiIi8h9JCCH8XYQvVVRUwGQyoby8HCEhIW7vmc1m5Obmol+/ftDpdH6qsOfj90xERERERL1Jazm0KS7BRkRERERERBQgGNKJiIiIiIiIAgRDOhEREREREVGAYEgnIiIiIiIiChAM6UREREREREQBgiGdiIiIiIiIKEAwpBMREREREREFCIZ0IiIiIiIiogDBkE5E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iL59+4pp06aJU6dOud7vqc+SJIQQvmu3JyIiIiIiIqKWcEw6ERERERERUYBgSCciIiIiIiIKEAzpRERERERERAGCIZ2IiIiIiIgoQDCkExEREREREQUIhnQiIiIiIiKiAMGQTkRERERERBQgGNKJiIiIiIiIAgRDOhERUQA4duwYfvazn0Gn02HkyJH+LqdXqKmpwe23346QkBBIkoSysjJ/l0RERMSQTkRE5I3i4mJoNBpUV1fDZrMhKCgIZ86c6fR5ly1bhqCgIBw/fhzbt2/vgko7Jjk5GatXr+425+2Mt956C9988w12796N/Px8mEwmf5dEREQElb8LICIi6k727NmDESNGICgoCN9//z3Cw8ORmJjY6fPm5OTgxhtvRFJSUhdUSe2Rk5ODQYMGYejQoR0+hxACdrsdKhX/SUVERF2DLelERERe2L17N6666ioAwLfffuv6uTUOhwNPP/004uPjodVqMXLkSHz++eeu9yVJQmZmJp5++mlIkoSnnnqqxfM8//zzSE1NhVarRWJiIp555hnX+4cOHcI111wDvV6PiIgI3HvvvaiqqnK9P3v2bGRkZOCFF15AbGwsIiIi8OCDD8JmswEAJk+ejLy8PDz00EOQJAmSJLmO/fbbbzFx4kTo9XokJCRg/vz5qK6uBgD885//hNFoxMmTJ137P/DAA0hPT0dNTU2L583Ly8NNN92EsLAwBAUFYciQIfj0009b/B7/3//7fxgwYAB0Oh2io6Nxxx13uN6zWCyYP38++vTpA51Oh5///OfYu3dvi+eaPHkyXnzxRXz99deQJAmTJ08GALz99tsYM2YMgoODERMTg7vuugtFRUWu43bs2AFJkvDZZ5/hiiuugFarxbffftvidYiIiLwmiIiIqFV5eXnCZDIJk8kk1Gq10Ol0wmQyCY1GI7RarTCZTOL+++9v8fiXXnpJhISEiHfeeUccO3ZMPProo0KtVosTJ04IIYTIz88XQ4YMEYsWLRL5+fmisrKy2fM8+uijIiwsTKxbt06cOnVKfPPNN+L1118XQghRVVUlYmNjxW233SYOHToktm/fLvr16ydmzZrlOn7WrFkiJCRE/O53vxNHjx4VH3/8sTAYDOLvf/+7EEKIkpISER8fL55++mmRn58v8vPzhRBCnDp1SgQFBYlVq1aJEydOiF27dolRo0aJ2bNnu859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\n",
      "text/plain": [
       "<Figure size 1200x700 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create the plot\n",
    "figure = visual_plt.plot_lines(\n",
    "    lines_to_plot, x_axes=plotting_dict_naive[\"x_context\"], line_names=line_names, colors=line_colors,\n",
    "    ylabel=\"Test accuracy (averaged over contexts so far)\", ylim=(0,1.05) if scenario==\"class\" else None,\n",
    "    xlabel=\"# of contexts so far\", title=\"{}  --  {}-incremental learning\".format(experiment, scenario)\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8a5620d1",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
